package com.niubility.dao;

import com.niubility.entity.Article;
import com.niubility.vo.ArticleAll;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName: ArticleDao
 * @Description: 实现文章各个部分的的显示,以及用户对自己文章的管理
 * @author: 张晨
 * @DATE: 2018/2/2
 */
public interface ArticleDao {

    //****************************************************************

    //查询文章的书数量
     public int SelectArticleNum();

     //添加新文章
    public  int Save(Article article);

    //用户可以删除自己的文章
    public int Delete(@Param("artId") int artId, @Param("userId") int usersId);

    //更改文章的点赞数量
    public int UpdateGoodnum(@Param("artId") int artId, @Param("num") int num);

    //更改文章的阅读数量
    public int UpdateReadNum(int artId);

    //查看自己已发布的文章
    public List<Article> SelectByMasterid(@Param("id") int id,
                                          @Param("page") int page,
                                          @Param("num") int num);

    //通过文章的ID查看文章的具体内容
    public List<Article> SelectById(int id);

    //点击关注显示的文章
    public List<Article> SelectByFollow(@Param("array") int[] masterId, @Param("page") int page,@Param("displayCounts")int displayCounts);

    //点击推荐显示的文章
    public List<Article> SelectByRecommend(@Param("page") int page,@Param("displayCounts")int displayCounts);


    //点击热门显示的文章
    public List<Article> SelectByHot(@Param("page") int page,@Param("displayCounts")int displayCounts);


    public int UpdateCollectNum(@Param("artId") int artId, @Param("num") int num);      //张家乐调用方法

    public List<Article> CallSelectById(@Param("array") int[] array, @Param("index") int index, @Param("displaycount") int displaycount);    // 王勇调用方法

    public int SelectByTitle(Article article);     //徐松鹤根据文章题目和发布者ID查

    public int UpdateAssessnum(Article article);    //徐松鹤更改文章评论数量

    public int articleNum(int id);

}
